package com.hhj.sharding.sphere.demo.algorithm;

/**
 * @author HHJ
 * @since 2024-05-23
 */
public class ShardingAlgorithmHelper {
    /**
     * 总的分库数量  默认8
     */
    protected static int DATABASE_SIZE = 2;

    /**
     * 每个库的分表数量 默认64
     */
    protected static int TABLE_SIZE = 3;

    /**
     * 计算database的后缀
     *
     * @param valueSuffix 分片键的值后三位
     * @return 数据源名后缀
     */
    public static String getDatabaseSuffix(long valueSuffix) {
        return valueSuffix % DATABASE_SIZE + "";
    }

    /**
     * 计算table的后缀
     *
     * @param valueSuffix 分片键的值后三位
     * @return 表名后缀
     */
    public static String getTableSuffix(long valueSuffix) {
        return valueSuffix / DATABASE_SIZE % TABLE_SIZE + "";
    }

}
